* {
  box-sizing: border-box;
}
.flex {
  display: flex;
  width: 1000px;
  justify-content: space-between;
}
.flex .box {
  position: relative;
  width: 300px;
  height: 212px;
  overflow: hidden;
}
.flex .box img {
  width: 300px;
  height: 210px;
}
.flex .box .mask {
  width: 300px;
  height: 170px;
  align-content: end;
  position: absolute;
  bottom: 0;
  left: 0px;
  z-index: 2;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  padding: 50px 10px 50px;
}
.flex .box .mask .title {
  font-size: 15px;
}
.flex .box .mask .des {
  font-size: 20px;
  width: 270px;
}
.flex .box p {
  justify-content: start;
  align-items: center;
  width: 65px;
  margin: 10px;
}
.flex .box p .more {
  font-size: 12px;
  width: 270px;
  color: #fff;
}
.flex .box p .iconfont {
  font-size: 14px;
  color: red;
}
.box:hover .mask {
  background-image: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.5));
}
.box:hover p {
  transform: translate(0, -50px);
}
